// Package types define the structure of request parameters and return results in this package
package types

import (
	"github.com/zhufuyi/sponge/pkg/mysql/query"
	"time"
)

var _ time.Time

type AsyncAdReq struct {
	AdSign       string `json:"ad_sign" binding:"required"`
	Appid        string `json:"appid" binding:"required"`
	Openid       string `json:"openid" binding:"required"`
	GdtAdId      string `json:"gdt_ad_id"`
	WxAid        string `json:"wx_ad_id"`
	WeiXinAdInfo string `json:"wei_xin_ad_info"`
	GdtVid       string `json:"gdt_vid"`
	GzGdt        string `json:"gz_gdt"`
	WxTraceid    string `json:"wx_traceid"`
	SystemType   string `json:"system_type"`
	DeviceInfo   string `json:"device_info"`
	UtmSource    string `json:"utm_source"`
	Uxinfo       string `json:"uxinfo"`
	Scene        int64  `json:"scenc"`
}

type AsyncAdReply struct {
	BindId string `json:"bind_id"`
	CType  int64  `json:"ctype"`
}

type ResInfo struct {
	Uid    string `json:"uid"`
	Aid    string `json:"aid"`
	OpenId string `json:"open_id"`
	Vid    string `json:"vid"`
	AdType string `json:"ad_type"` // 广告类型
}

// CreateTkAdRequest create params
// todo fill in the binding rules https://github.com/go-playground/validator
type CreateTkAdRequest struct {
	Code                  string `json:"code" binding:""`                  // 唯一标识
	Name                  string `json:"name" binding:""`                  // 广告名称
	AdNum                 string `json:"adNum" binding:""`                 // 广告编码
	CompanyID             int    `json:"companyId" binding:""`             // 公司id
	AdminID               int    `json:"adminId" binding:""`               // 管理员id
	ShopID                int    `json:"shopId" binding:""`                // 商户id
	ProductID             int    `json:"productId" binding:""`             // 广告id
	PlatformID            int    `json:"platformId" binding:""`            // 平台id:1:腾讯，4：磁力引擎
	AdAccountID           int    `json:"adAccountId" binding:""`           // 广告账号id
	BackflowStatus        int    `json:"backflowStatus" binding:""`        // 回流优惠券状态
	BackCouponIds         string `json:"backCouponIds" binding:""`         // 回流优惠券package_ids
	FullStatus            int    `json:"fullStatus" binding:""`            // 满减优惠券状态
	FullCouponIds         string `json:"fullCouponIds" binding:""`         // 满减优惠券package_ids
	StayStatus            int    `json:"stayStatus" binding:""`            // 支付挽留优惠券状态
	StayCouponIds         string `json:"stayCouponIds" binding:""`         // 支付挽留优惠券package_ids
	CallbackStatus        string `json:"callbackStatus" binding:""`        // 回传行为:	"COMPLETE_ORDER": "下单","PURCHASE":      "购买",
	CallbackTime          int    `json:"callbackTime" binding:""`          // 回传节点:1：成交
	CallbackRatio         int    `json:"callbackRatio" binding:""`         // 回传比例
	AdUrl                 string `json:"adUrl" binding:""`                 // 广告链接
	ConverNum             int    `json:"converNum" binding:""`             // 转化数量
	BatchNum              string `json:"batchNum" binding:""`              // 微信优惠券批次号
	WechatLandingType     int    `json:"wechatLandingType" binding:""`     // 1 图文落地页 2 视频落地页
	WechatLandingResource string `json:"wechatLandingResource" binding:""` // 资源地址
	KefuGroupID           int    `json:"kefuGroupId" binding:""`           // 客服组id
	KefuTemplateID        int    `json:"kefuTemplateId" binding:""`        // 客服海报id
}

// UpdateTkAdByIDRequest update params
type UpdateTkAdByIDRequest struct {
	ID uint64 `json:"id" binding:""` // uint64 id

	Code                  string `json:"code" binding:""`                  // 唯一标识
	Name                  string `json:"name" binding:""`                  // 广告名称
	AdNum                 string `json:"adNum" binding:""`                 // 广告编码
	CompanyID             int    `json:"companyId" binding:""`             // 公司id
	AdminID               int    `json:"adminId" binding:""`               // 管理员id
	ShopID                int    `json:"shopId" binding:""`                // 商户id
	ProductID             int    `json:"productId" binding:""`             // 广告id
	PlatformID            int    `json:"platformId" binding:""`            // 平台id:1:腾讯，4：磁力引擎
	AdAccountID           int    `json:"adAccountId" binding:""`           // 广告账号id
	BackflowStatus        int    `json:"backflowStatus" binding:""`        // 回流优惠券状态
	BackCouponIds         string `json:"backCouponIds" binding:""`         // 回流优惠券package_ids
	FullStatus            int    `json:"fullStatus" binding:""`            // 满减优惠券状态
	FullCouponIds         string `json:"fullCouponIds" binding:""`         // 满减优惠券package_ids
	StayStatus            int    `json:"stayStatus" binding:""`            // 支付挽留优惠券状态
	StayCouponIds         string `json:"stayCouponIds" binding:""`         // 支付挽留优惠券package_ids
	CallbackStatus        string `json:"callbackStatus" binding:""`        // 回传行为:	"COMPLETE_ORDER": "下单","PURCHASE":      "购买",
	CallbackTime          int    `json:"callbackTime" binding:""`          // 回传节点:1：成交
	CallbackRatio         int    `json:"callbackRatio" binding:""`         // 回传比例
	AdUrl                 string `json:"adUrl" binding:""`                 // 广告链接
	ConverNum             int    `json:"converNum" binding:""`             // 转化数量
	BatchNum              string `json:"batchNum" binding:""`              // 微信优惠券批次号
	WechatLandingType     int    `json:"wechatLandingType" binding:""`     // 1 图文落地页 2 视频落地页
	WechatLandingResource string `json:"wechatLandingResource" binding:""` // 资源地址
	KefuGroupID           int    `json:"kefuGroupId" binding:""`           // 客服组id
	KefuTemplateID        int    `json:"kefuTemplateId" binding:""`        // 客服海报id
}

// GetTkAdByIDRespond respond detail
type GetTkAdByIDRespond struct {
	ID string `json:"id"` // convert to string id

	Code                  string `json:"code"`           // 唯一标识
	Name                  string `json:"name"`           // 广告名称
	AdNum                 string `json:"adNum"`          // 广告编码
	CompanyID             int    `json:"companyId"`      // 公司id
	AdminID               int    `json:"adminId"`        // 管理员id
	ShopID                int    `json:"shopId"`         // 商户id
	ProductID             int    `json:"productId"`      // 广告id
	PlatformID            int    `json:"platformId"`     // 平台id:1:腾讯，4：磁力引擎
	AdAccountID           int    `json:"adAccountId"`    // 广告账号id
	BackflowStatus        int    `json:"backflowStatus"` // 回流优惠券状态
	BackCouponIds         string `json:"backCouponIds"`  // 回流优惠券package_ids
	FullStatus            int    `json:"fullStatus"`     // 满减优惠券状态
	FullCouponIds         string `json:"fullCouponIds"`  // 满减优惠券package_ids
	StayStatus            int    `json:"stayStatus"`     // 支付挽留优惠券状态
	StayCouponIds         string `json:"stayCouponIds"`  // 支付挽留优惠券package_ids
	CallbackStatus        string `json:"callbackStatus"` // 回传行为:	"COMPLETE_ORDER": "下单","PURCHASE":      "购买",
	CallbackTime          int    `json:"callbackTime"`   // 回传节点:1：成交
	CallbackRatio         int    `json:"callbackRatio"`  // 回传比例
	AdUrl                 string `json:"adUrl"`          // 广告链接
	ConverNum             int    `json:"converNum"`      // 转化数量
	CreatedAt             int    `json:"createdAt"`
	UpdatedAt             int    `json:"updatedAt"`
	BatchNum              string `json:"batchNum"`              // 微信优惠券批次号
	WechatLandingType     int    `json:"wechatLandingType"`     // 1 图文落地页 2 视频落地页
	WechatLandingResource string `json:"wechatLandingResource"` // 资源地址
	KefuGroupID           int    `json:"kefuGroupId"`           // 客服组id
	KefuTemplateID        int    `json:"kefuTemplateId"`        // 客服海报id
}

// DeleteTkAdsByIDsRequest request form ids
type DeleteTkAdsByIDsRequest struct {
	IDs []uint64 `json:"ids" binding:"min=1"` // id list
}

// GetTkAdsByIDsRequest request form ids
type GetTkAdsByIDsRequest struct {
	IDs []uint64 `json:"ids" binding:"min=1"` // id list
}

// GetTkAdsRequest request form params
type GetTkAdsRequest struct {
	query.Params // query parameters
}

// ListTkAdsRespond list data
type ListTkAdsRespond []struct {
	GetTkAdByIDRespond
}
